LEFT JOIN, RIGHT JOIN - operacje

U┐yte w dowolnej klauzuli FROM, │╣cz╣ (scalaj╣) rekordy z tabel ƒr≤d│owych.

Sk│adnia

FROM tabela_1 [ LEFT | RIGHT ] JOIN tabela_2
    ON tabela_1.pole_1 op_por tabela_2.pole_2

Sk│adnia operacji LEFT JOIN i RIGHT JOIN zawiera nastΩpuj╣ce elementy:

Element Opis
tabela_1, tabela_2 Nazwy tabel, kt≤rych rekordy s╣ │╣czone (scalane).
pole_1, pole_2 Nazwy p≤l sprzΩgaj╣cych. Pola musz╣ byµ tego samego typu danych i zawieraµ ten sam rodzaj danych, ale nie musz╣ mieµ tych samych nazw.
op_por Dowolny operator por≤wnania: "=", "<", ">", "<=", ">=" lub "<>".

Uwagi

Operacja LEFT JOIN s│u┐y do tworzenia sprzΩ┐enia zewnΩtrznego lewostronnego. SprzΩ┐enia zewnΩtrzne lewostronne w│╣czaj╣ wszystkie rekordy z pierwszej (lewej) z dw≤ch tabel, nawet je£li w rekordach z drugiej (prawej) tabeli nie istniej╣ odpowiadaj╣ce im warto£ci.

Operacja RIGHT JOIN s│u┐y do tworzenia sprzΩ┐enia zewnΩtrznego prawostronnego. SprzΩ┐enia zewnΩtrzne prawostronne w│╣czaj╣ wszystkie rekordy z drugiej (prawej) z dw≤ch tabel, nawet je£li w rekordach pierwszej (lewej) tabeli nie istniej╣ odpowiadaj╣ce im warto£ci.

Na przyk│ad, do wybrania wszystkich wydzia│≤w, tak┐e tych, do kt≤rych nie s╣ przypisani pracownicy, nale┐y u┐yµ operacji sprzΩ┐enia lewostronnego (operator LEFT JOIN) z tabel╣ Wydzia│y (lewa) i tabel╣ Pracownicy (prawa). Aby wybraµ wszystkich pracownik≤w, w│╣czaj╣c tych nie przydzielonych do wydzia│≤w, nale┐y u┐yµ operacji RIGHT JOIN.

W poni┐szym przyk│adzie pokazano, jak mo┐na dokonaµ sprzΩ┐enia tabel Kategorie i Produkty wed│ug pola NrKategoria. Kwerenda daje w wyniku listΩ wszystkich kategorii, w tym r≤wnie┐ nie zawieraj╣cych ┐adnego produktu.

SELECT NazwaKategorii,

NazwaProduktu

FROM Kategorie LEFT JOIN Produkty

ON Kategorie.NrKategorii = Produkty.NrKategorii;

W tym przyk│adzie, NrKategorii jest polem sprzΩ┐onym, ale nie jest uwzglΩdnione w wyniku kwerendy, poniewa┐ nie jest zawarte w instrukcji SELECT. Aby do│╣czyµ pole sprzΩ┐one, nale┐y w instrukcji SELECT dodaµ nazwΩ pola ù w tym przypadku Kategorie.NrKategorii.


Uwagi

Aby utworzyµ kwerendΩ zawieraj╣c╣ wy│╣cznie rekordy, w kt≤rych dane w polach sprzΩ┐onych s╣ takie same, nale┐y u┐yµ operacji INNER JOIN.

Podczas pr≤by sprzΩgania p≤l zawieraj╣cych dane typu Memo lub obiekt OLE wystΩpuje b│╣d.


Zobacz te┐
FROM û klauzula (Microsoft Jet SQL) UNION û operacja (Microsoft Jet SQL)
INNER JOIN û operacja (Microsoft Jet SQL)  

Przyk│ad

LEFT JOIN, RIGHT JOIN û przyk│ad operacji